package demo.day09

// Kt 想表达的 枚举也是一个类
fun main() {
    // 枚举用法如下 打印数据
    println(Limbs.LEFT_HAND.show())
    println(Limbs.LEFT_ROOT.show())
    println(Limbs.RIGHT_HAND.show())
    println(Limbs.RIGHT_ROOT.show())
    // 更新数据
    Limbs.LEFT_HAND.upDate(LimbsInfo("左手",99))
    println(Limbs.LEFT_HAND.show())
}

// 四肢相关信息、
// 枚举的主构造的参数 必须和枚举的参数保持一致
enum class Limbs(private var limbsInfo: LimbsInfo) {
    LEFT_HAND(LimbsInfo("左手", 50)), // 左手
    RIGHT_HAND(LimbsInfo("右手", 50)), // 右手
    LEFT_ROOT(LimbsInfo("左脚", 40)), // 左脚
    RIGHT_ROOT(LimbsInfo("左脚", 40)) // 右脚
    ; // 结束枚举值

    fun show() = "${limbsInfo.limbInfo1}的长度是${limbsInfo.length}"
    fun upDate(limbsInfo: LimbsInfo){
        this.limbsInfo = limbsInfo
    }
}


class LimbsInfo(var limbInfo1: String, var length: Int) {
    fun show() {
        println("${limbInfo1}的长度是$length")
    }
}